#include <iostream>
#include <string>
#include "server_socket.h"
#include "server_thread_aceptar.h"
#include <stdio.h>

using std::string;
using std::cout;
using std::endl;
using std::cin;


int main(int argc, char* argv[]){
    bool esperar_stdin = true;
    bool correr = true;
    int port = 4321;
    Server_socket socket = Server_socket(port);
    Server_thread_aceptar thread_conexion = Server_thread_aceptar(&socket,&correr);    
    if (socket.escuchar_puerto() == -1){
            return -1;
    }			
    //lanza hilo para aceptar conexiones con la funcion ejecutar() del Server_thread_aceptar.
    thread_conexion.iniciar();

    while(esperar_stdin == true){
        string linea;
        getline(cin, linea);
        if (linea.compare("q") == 0){
            esperar_stdin = false;
            correr = false; //avisa al bool del hilo de conexiones:
            socket.cerrar_comunicacion();
            thread_conexion.join();
            socket.cerrar();
        }
    }
    return 0;
}
